package com.vision.sales.cl.data;

import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor.Path;
import com.sencha.gxt.core.client.ValueProvider;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
import com.vision.sales.cm.data.PaymentTerm;
import com.vision.sales.cm.db.data.Customer;
import com.vision.sales.cm.db.data.Salesman;

public interface CustomerProperties extends PropertyAccess<Customer> {
	
	public static final CustomerProperties INSTANCE = GWT.create(CustomerProperties.class);
	
	@Path("id")
	ModelKeyProvider<Customer> key();
	
	@Path("name")
	LabelProvider<Customer> nameLabel();

	ValueProvider<Customer, Long> id();
	ValueProvider<Customer, String> code();
	ValueProvider<Customer, String> name();
	ValueProvider<Customer, String> address();
	ValueProvider<Customer, String> deliverySite();
	ValueProvider<Customer, String> email();
	ValueProvider<Customer, String> phone();
	ValueProvider<Customer, String> fax();
	ValueProvider<Customer, String> contactName();
	ValueProvider<Customer, String> contactPhone();
	ValueProvider<Customer, Boolean> withholdingTax();
	ValueProvider<Customer, String> tin();		
	ValueProvider<Customer, Double> taxRate();
	ValueProvider<Customer, PaymentTerm> paymentTerm();
	ValueProvider<Customer, Salesman> salesman();
	ValueProvider<Customer, Boolean> allowOverruns();
	ValueProvider<Customer, Double> balance();

	
}